Architecture

MVC

Model View Controller

MVP

Model View Presenter

Dependency Rule

Clean Architecture

MVVM

Model View ViewModel

MVI

Model View Intent

⚠️ Ici Intent n'est pas le type spécifique à Android

💡 Ceci s'adapte encore plus directement avec Jetpack Compose

Google Architecture

ViewModel

  • Formate les données pour l'UI
  • Survit aux "configuration changes"
  • Peut aussi partager des données entre Fragments
  • Fait partie de la "lifecycle library" mais ré-implémentable
  • Ne pas passer de Context (si besoin, étendre AndroidViewModel)

Analogie: Serveur

Repository

  • Pas un Architecture Component mais une bonne pratique
  • Récupère les données d'une ou plusieurs DataSource
  • Choisis la source en fonction des circonstances
  • Synchronise les sources
  • Présente les données

Analogie: Cuisine

Compose

https://developer.android.com/jetpack/compose/architecture